package com.lanswon.qzsmk.service.systemManageService;

import java.util.List;
import java.util.Map;

import com.lanswon.qzsmk.base.DwzPage;
import com.lanswon.qzsmk.exception.ApplicationException;
import com.lanswon.qzsmk.model.Role;
import com.lanswon.qzsmk.model.User;
import com.lanswon.qzsmk.vo.SaveOrUpdateTellerVo;
import com.lanswon.qzsmk.vo.TellerAuthVo;
import com.lanswon.qzsmk.vo.TellerVo;
import com.lanswon.qzsmk.vo.UserVo;

public interface TellerManageService {

	/**
	 * 添加柜员
	 * @param t
	 */
	void addTeller(SaveOrUpdateTellerVo t)throws ApplicationException;
	
	/**
	 * 初始化数据 修改柜员-绑定网点
	 * @param userId
	 * @param orgNo
	 */
	public void modifyTeller_init(Integer userId,String orgNo);
	
	/**
	 * 修改柜员信息
	 * @param t
	 */
	void modifyTeller(SaveOrUpdateTellerVo t);
	
	/**
	 * 修改柜员登陆密码
	 * @param t
	 */
	void modifyTellerPassWord(SaveOrUpdateTellerVo t);
	
	/**
	 * 根据用户no查询
	 * @param NO
	 * @return
	 */
	SaveOrUpdateTellerVo queryUserByUserNo(int userNo) throws Exception;
	
	/**
	 * 分页查询
	 * @param t
	 * @return
	 */
	DwzPage<User> queryTellerByName(TellerVo t);
	
	/**
	 * 为网点分配柜员
	 * @param userNo 柜员编号
	 * @param BranchNo 网点编号
	 * @throws Exception
	 */
	void allocatTeller(Integer userNo,Integer BranchNo)throws Exception;
	
	/**
	 * 显示该网点的柜员和未分配的柜员
	 * @param BranchNo
	 * @return
	 */
	DwzPage<UserVo> showTellerByBranch(UserVo vo);
	
	/**
	 * 柜员授权显示列表
	 * @param vo
	 * @return
	 */
	DwzPage<TellerAuthVo> queryTellerByUserNameOrUserNo(TellerAuthVo vo);
	
	/**
	 * 查询当前人员已设置角色和未设置的角色
	 * @param userId 用户id
	 * @return
	 */
	Map<String,List<Role>> queryRoleByUser(Integer userId,Integer sysId);
	
}
